﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PGI.EN.TipoUsuario;
using PGI.LN.TipoUsuario;

namespace PGI.WF
{
    public partial class FrmTipoUsuarioInsertar : Form
    {

        public int EstadoForm = 0;
        public TipoUsuarioEn tipo_usuarioForm = null;

        public FrmTipoUsuarioInsertar()
        {
            InitializeComponent();
        }

        private void FrmTipoUsuarioInsertar_Load(object sender, EventArgs e)
        {
            if (EstadoForm == 1)
            {
                this.Text = "Tipo Usuario: Agregar";
                btnAgregar.Width = 82;
                btnAgregar.Image = ilbtnAgregar.Images[0];
                btnAgregar.Text = "Agregar";

                txtTipoUsuarioDesc.Focus();
            }
            if (EstadoForm == 2)
            {
                this.Text = "Tipo Usuario: Editar";
                btnAgregar.Width = 82;
                btnAgregar.Image = ilbtnAgregar.Images[1];
                btnAgregar.Text = "Editar";

                txtTipoUsuarioDesc.Text = tipo_usuarioForm.Descripcion;
                txtTipoUsuarioDesc.Focus();
                txtTipoUsuarioDesc.SelectAll();                
            }
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            if (txtTipoUsuarioDesc.Text.Length > 0)
            {
                if (EstadoForm == 1) //AGREGAR
                {
                    try
                    {
                        TipoUsuarioEn obj = new TipoUsuarioEn();
                        obj.Descripcion = txtTipoUsuarioDesc.Text;
                        obj.Estado = 1;

                        int respuesta = TipoUsuarioLn.TipoUsuario_Insertar(obj);

                        if (respuesta > 0)
                        {
                            MessageBox.Show(this, "Se guardó correctamente el tipo de usuario: (" + respuesta + ") " + txtTipoUsuarioDesc.Text, "INFORMACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Dispose();
                        }
                        else if (respuesta == -1)
                        {
                            MessageBox.Show(this, "Se generó un error al intentar almacenar la información del tipo de usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            this.Dispose();
                        }
                        else if (respuesta == -2)
                        {
                            MessageBox.Show(this, "Ya existe en la base de datos el tipo de usuario: " + txtTipoUsuarioDesc.Text, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    catch
                    {
                        MessageBox.Show(this, "Se generó un error al intentar almacenar la información del tipo de usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.Dispose();
                    }
                }
                if (EstadoForm == 2) //EDITAR
                {
                    try
                    {
                        TipoUsuarioEn obj = new TipoUsuarioEn();
                        obj.TipoUsuarioID = tipo_usuarioForm.TipoUsuarioID;
                        obj.Descripcion = txtTipoUsuarioDesc.Text;
                        obj.Estado = 1;

                        int respuesta = TipoUsuarioLn.TipoUsuario_Editar(obj);

                        if (respuesta > 0)
                        {
                            MessageBox.Show(this, "Se guardó correctamente el tipo de usuario: (" + tipo_usuarioForm.TipoUsuarioID + ") " + txtTipoUsuarioDesc.Text, "INFORMACIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Dispose();
                        }
                        else if (respuesta == -1)
                        {
                            MessageBox.Show(this, "Se generó un error al intentar almacenar la información del tipo de usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            this.Dispose();
                        }
                        else if (respuesta == -2)
                        {
                            MessageBox.Show(this, "Ya existe en la base de datos el tipo de usuario: " + txtTipoUsuarioDesc.Text, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    catch
                    {
                        MessageBox.Show(this, "Se generó un error al intentar almacenar la información del tipo de usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.Dispose();
                    }
                }
            }
            else
            {
                MessageBox.Show(this, "Debe ingresar la descripción del Tipo de Usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dr == DialogResult.Yes)
                this.Dispose();
        }

        private void FrmTipoUsuarioInsertar_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                btnAgregar_Click(sender, e);
            if (e.KeyCode == Keys.Escape)
                btnCancelar_Click(sender, e);
        }

        private void FrmTipoUsuarioInsertar_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!this.IsDisposed)
            {
                DialogResult dr = MessageBox.Show(this, "¿Desea salir de la ventana sin guardar cambios?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                    this.Dispose();
                else
                    e.Cancel = true;
            }
        }

    }
}
